package Animal;

class Money{
    public double m=99.9;
}
class Person implements Cloneable{
    public Money money=new Money();
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}
public class TestDome3 {
    public static void main(String[] args) throws CloneNotSupportedException {
        Person person=new Person();

            Person person1=(Person)person.clone();

        System.out.println("通过person2修改前的结果");
        System.out.println(person.money.m);
        System.out.println(person1.money.m);
        person1.money.m=13.6;
        System.out.println("通过person1修改之后的结果");
        System.out.println(person.money.m);
        System.out.println(person1.money.m);

        //抽象类和接口的区别
        //抽象类和接口都是java中多态的常见使用方式
        //都需要重点掌握
        //同时又要清楚两者的区别
        //
        //核心区别：抽象类中可以包含普通方法和普通字段
        //这样子的方法和字段可以被子类直接使用，无需重写
        //而接口中全是抽象的，子类必须重写所有的抽象方法
        //

        //Object是一个默认提供的类
        //java里面除了Object类，所有的类都存在继承关系，默认继承于Object父类
        //也就是所欲的对象都可以使用Object的引用来进行接受
        //

        //所以在开发之中，Object类是参数的最高统一类型，但是Object类也有一些定义好的方法
        //对于Object类之中的方法需要全部掌握
        //




    }
}
